#!/usr/bin/env python3
# -*- coding:UTF-8 -*-
#######################################
#本篇代码片段主要是Python的数据表达部分
#######################################
import os,sys
# 1. 量
## 1.1 常量
#//下面语句中，主要通过打印函数print，打印了字符串和数字，字符常量等
print("hello,python.I am 100.\t\tThis line is after 置位符")
print('Hello,Python.I am %s. This year I am %d old. I like char %c' % ('YunWei Note',28,'A')) #print常量的格式化输出
#//下面语句中，主要是对不同的基本数据类型进行变量声明和使用
## 1.2 变量
NAME = 'YunWei Note'
NAME_CN = '运维笔记'
AGE = 28
CHAR = 'A'
#// ',',逗号表示print不换行
print(NAME),
print(NAME_CN),
print(AGE),
print(CHAR)
print('My name is : %s.中文就是：%s.今年年龄:%d,我喜欢字母%c' % (NAME,NAME_CN,AGE,CHAR)) #print 变量的格式化输出

#// 综述：Python中，常量和变量其实没有分别。
#// 能够使用常量的地方，均可以使用变量。能够使用变量的地方，均可以用表达式来表示。而表达式必然返回一个值。
#// Python中变量其实仅仅是一个索引内存值的标签,由解释器的命名空间维护。变量赋值，就是一个映射的操作 

# 2. 数据类型
## 2.1 基本数据类型
### 2.1.1 数字型
print('100 is:%d. 100.0 is:%f' % (100,100.0))
####print('char %c is num %d' % ('A','A'))
## 2.2 扩展数据类型
### 2.2.1 列表
print ['1','2','3','4'] #纯字符列表
print [1,2,3,4] #纯数字列表
print ["YunWei Note","My Name","is"] #纯字符串列表
print [1,'A','Yunwei Note',[1,2,3,4]] #混合型列表
list_001 = [1,'A','YunWei Note',[1,2,3,4]]
for i in range(len(list_001)):
    #print(i)
    #print(type(list_001[i]))
    print('type of %s is :%s' % (list_001[i],type(list_001[i])))
    #//上面一行仅仅是打印，推而广之可以对列表元素进行各类运算

#### 2.2.1.1 列表的运算
##创建列表
list_002 = [] #创建空列表
for i in range(10):
    list_002.append(i) #列表方法一，添加元素
    print('list %s id at %d' %(list_002,id(list_002)))

list_003 = ['Hello','YunWeiNote','I','am','programing','!']
print("I have deleted : %s and %s" % (list_003.pop(),list_003.pop(2))) #列表方式二，删除元素。默认删除最后一个，通过索引指定元素,返回删除的元素值。
 
list_004 = ['A',1,'B',2,'C',3,'D',4,'E',5]
for i in range(10):
    #print(list_004[i]), #列表方法三，检索元素-顺序
    #print(list_004[-i-1]), #检索元素-倒序
    if i % 2 != 0:
        print(list_004[i]), 
    if i % 2 == 0:
        #print(list_004[i+1]), #检索元素-跳序
        print(list_004[i]), #检索元素-跳序
### 2.2.2 元祖
### 2.2.3 字典
#测试